package org.example.file;
import java.util.Scanner;
import java.io.File;
public class FIileStructure {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入文件目录路径：");
        String path = scanner.nextLine();
        File pathdir = new File(path);

        if (pathdir.exists() && pathdir.isDirectory()) {
            print(pathdir, "", 0);
        } else {
            System.out.println("目录不存在或不是一个有效的目录。");
        }
    }
    private static void print(File pathdir, String pre, int level) {
        if (level > 5) return; // 限制递归深度不超过5层

        // 打印当前目录或文件
        if (pathdir.isFile()) {
            System.out.println(pre + "└── " + pathdir.getName());
        } else {
            System.out.println(pre + "├── " + pathdir.getName());
            pre += level == 0 ? "    " : "│   ";
        }
        // 遍历子目录或文件
        File[] files = pathdir.listFiles();
        if (files != null) {
            for (int i = 0; i < files.length; i++) {
                if (i == files.length - 1) {
                    pre = pre.substring(0, pre.length() - 4) + "    "; // 最后一个元素
                }
                print(files[i], pre, level + 1);
                if (i != files.length - 1) {
                    pre = pre.substring(0, pre.length() - 4) + "│   "; // 不是最后一个元素
                }
            }
        }
    }
}